/**
 * 图书管理员类
 */
public class Librarian {
    // 数据域
    String name;        // 姓名
    String gender;      // 性别
    int age;            // 年龄
    int workYears;      // 工作年限
    
    // 构造方法
    public Librarian() {
    }
    
    // 管理方法
    /**
     * 办理借书手续
     * @return 是否成功
     */
    public boolean processBorrow(person person, book book) {
        System.out.println("管理员 " + name + " 正在处理借书手续...");
        
        // 检查书籍状态
        if (book.getStatus()) {
            // 书籍可借，执行借书操作
            boolean bookResult = book.borrowBook();
            boolean personResult = person.borrowBook();
            
            if (bookResult && personResult) {
                System.out.println("借书手续办理完成：" + person.getName() + " 借阅了《" + book.getTitle() + "》");
                return true;
            }
        } else {
            System.out.println("借书失败：书籍《" + book.getTitle() + "》不可借阅");
        }
        return false;
    }
    
    /**
     * 办理还书手续
     * @return 是否成功
     */
    public boolean processReturn(person person, book book) {
        System.out.println("管理员 " + name + " 正在处理还书手续...");
        
        // 执行还书操作
        boolean bookResult = book.returnBook();
        boolean personResult = person.returnBook();
        
        if (bookResult && personResult) {
            System.out.println("还书手续办理完成：" + person.getName() + " 归还了《" + book.getTitle() + "》");
            return true;
        } else {
            System.out.println("还书手续办理失败");
            return false;
        }
    }
    
    // Getter方法
    public String getName() {
        return name;
    }
    
    public String getGender() {
        return gender;
    }
    
    public int getAge() {
        return age;
    }
    
    public int getWorkYears() {
        return workYears;
    }
    
    // Setter方法
    public void setName(String newname) {
        name = newname;
    }
    
    public void setGender(String newgender) {
        gender = newgender;
    }
    
    public void setAge(int newage) {
        if (newage >= 0) {
            age = newage;
        } else {
            System.out.println("年龄不能为负数");
        }
    }
    
    public void setWorkYears(int newworkYears) {
        if (workYears >= 0) {
            workYears = newworkYears;
        } else {
            System.out.println("工作年限不能为负数");
        }
    }
    
    // 显示管理员信息
    public void displayInfo() {
        System.out.println("姓名：" + name);
        System.out.println("性别：" + gender);
        System.out.println("年龄：" + age + "岁");
        System.out.println("工作年限：" + workYears + "年");
    }
}